<!--
  ~ Copyright (c) 2005-2006 jME Physics 2
  ~ All rights reserved.
  ~
  ~ Redistribution and use in source and binary forms, with or without
  ~ modification, are permitted provided that the following conditions are
  ~ met:
  ~
  ~  * Redistributions of source code must retain the above copyright
  ~    notice, this list of conditions and the following disclaimer.
  ~
  ~  * Redistributions in binary form must reproduce the above copyright
  ~    notice, this list of conditions and the following disclaimer in the
  ~    documentation and/or other materials provided with the distribution.
  ~
  ~  * Neither the name of 'jME Physics 2' nor the names of its contributors
  ~    may be used to endorse or promote products derived from this software
  ~    without specific prior written permission.
  ~
  ~ THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
  ~ "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED
  ~ TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
  ~ PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR
  ~ CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
  ~ EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
  ~ PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
  ~ PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
  ~ LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
  ~ NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
  ~ SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
  -->

<html>
<head>
    <title>Project Home Page</title>
    <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
</head>

<body bgcolor="#FFFFFF" text="#000000">
<h1>jME Physics</h1>

<p>
    jME Physics was providing an interface between jME (Java Monkey Engine) and ODE (Open Dynamics Engine).
    It sat on top of a slightly modified version of odejava, and provided a way to very easily set up a physics world
    and add objects to it - a simple box-falling-on-a-floor application is only a matter of a few lines.
    Yet, the goal was to provide advanced and powerful features - e.g. vehicle support is implemented. <br>
    jME Physics 2 was completely redesigned. Until today it supports most features of the old one plus some new
    ones...
</p>

<p>
    Find our discussion board <a href="http://www.jmonkeyengine.com/jmeforum/index.php?board=3.0">here</a>.<br>
    For current status of jME Physics 2, feature list and todos have a look at
    <a href="https://jmephysics.dev.java.net/source/browse/jmephysics/README.txt?view=markup">README.txt</a>.
    Additionally the <a href="http://wiki.jmephysics.irrisor.net/">jME Physics 2 Wiki</a> is growing steadily.
</p>

<p><b>Latest release:</b> <a href="http://www.jmonkeyengine.com/jmeforum/index.php?topic=5805">2.1.0 release candidate 1</a></p>

<p>
    jME Physics 2 got redesigned to allow some major features:
    - physics engine independent API (to use e.g. NovodeX, PhysX, Newton... not only ODE)<br/>
    - composable physics representation (e.g. approximate a mesh with two spheres)<br/>
    - allow running physics without loading meshes (e.g. server side)<br/>
    - load/store physics representation<br/>
    - debugging mode showing physics representations (like with bounds currently)<br/>
    additional features/fixes:<br/>
    - proper handling of nested nodes (meshes in nested nodes)<br/>
    - placement of pivot/mass point<br/>
    - better integration with the scenegraph, as well as possible separation<br/>
</p>

<p>
    <br/>New API:<br/>
    - physics objects and types get specified within the scenegraph like this:<br/>
    <br/>

    <div align="center"><img src="images/jmephysicsexample1.png" alt="" border="0"/></div><br/>
    <br/>
    There are PhysicsNodes (dynamic or static) that specify parts of the scenegraph that should be controlled by
    physics.<br/>
    Replacing PhysicsType: the idea is that there have to be instances of PhysicsRepresentation (here
    PhysicsBox and PhysicsSphere) in each PhysicsNode that make up the collision bounds of the physical
    entities. The representation can be derived from bounds/mesh as before (depicted by the method
    invocation and creation of the green objects).<br/>
    The classdiagram looks like this (excerpt):<br/>
    <br/>

    <div align="center"><img src="images/jmephysicsclassdiagramexcerpt.png" alt="" border="0"/></div><br/>
    <br/>
    - jme format gets extended to allow storage of such scenegraphs, a filter may be provided to store only
    physics/visuals<br/>
</p>
</body>
</html>

